跳至主要内容

2.3 存储位置

数据需解锁交易时提供,以解锁脚本+赎回脚本组合数据。在解锁过程中,矿工将对交易签名和其他解锁条件进行校验,据此确定数据的发起者。索引器根据区块和UTXO交易链确定交易的执行顺序,并据此验证资产交易的有效性。此类解锁签名的类型设置为 ALL | ANYONECANPAY。 本协议采用非标准脚本作为赎回脚本,与P2PKH等标准脚本不同,从而避免UTXO被误消费的情况。 本协议所使用的最简单比特币脚本示例如下。

2.3.1 非标脚本

非标脚本如以下事例,NOTE是协议标识符,其他脚本处理解锁脚本数据以及校验签名。

  • 锁定脚本:NOTE OP_2DROP OP_2DROP OP_2DROP Pubkey OP_CHECKSIG
  • 解锁脚本:Signature DATA0 DATA1 DATA2 DATA3 DATA4

2.3.2 使用P2SH/P2WSH

在支持P2SH/P2WSH机制的区块链中按如下格式定义

  • 解锁脚本:Signature DATA0 DATA1 DATA2 DATA3 DATA4
  • 赎回脚本:NOTE OP_2DROP OP_2DROP OP_2DROP Pubkey OP_CHECKSIG

数据信息被保存在隔离见证数据区中。

2.3.3 使用P2TR

类似P2WSH,赎回脚本作为MAST的一个解锁分支。由包含数据解锁脚本提供解锁。

在支持P2TR机制的区块链中按如下格式定义

  • 解锁脚本:Signature DATA0 DATA1 DATA2 DATA3 DATA4
  • 赎回脚本:NOTE OP_2DROP OP_2DROP OP_2DROP Pubkey OP_CHECKSIG

解锁脚本信息保存在隔离见证数据区中。

2.3.4 完全赎回

数据可以完全存储在隔离见证数据区,而不要求放在解锁脚本中。

例如:

  • 解锁脚本:Signature
  • 赎回脚本:DATA0 DATA1 DATA2 DATA3 DATA4 NOTE OP_2DROP OP_2DROP OP_2DROP Pubkey OP_CHECKSIG

以此种格式保存的数据将会拥有不一样的地址。